#ifndef INTERFAZ_H_
#define INTERFAZ_H_
#include "../Entidades/Candidato.h"
#include "../Entidades/Cargo.h"
#include "../Entidades/Conteo.h"
#include "../Entidades/Distrito.h"
#include "../Entidades/Eleccion.h"
#include "../Entidades/Lista.h"
#include "../Entidades/Votante.h"
#include "../Entidades/Administrador.h"
#include "../Manejadores/ManejadorCandidato.h"
#include "../Manejadores/ManejadorCargo.h"
#include "../Manejadores/ManejadorConteo.h"
#include "../Manejadores/ManejadorDistrito.h"
#include "../Manejadores/ManejadorEleccion.h"
#include "../Manejadores/ManejadorLista.h"
#include "../Manejadores/ManejadorVotante.h"
#include "../Manejadores/ManejadorAdministrador.h"
#include "../Archivos/Log.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <algorithm>
#include <fstream>

using namespace Manejadores;
using namespace Entidades;
using namespace std;

namespace Interfaces{

class Interfaz {
private:
	int opcion;
	string usuario;
	string contrasenia;

public:
	Interfaz();
	int menuPantallaInicio();
	int menuPantallaLogin();
	void menuAdministrador();
	void menuABMVotante();
	void menuABMDistrito();
	void menuABMCargo();
	void menuABMEleccion();
	void menuABMCandidato();
	void menuABMLista();
	void menuLogs();
	void menuReportes();
	void votanteABM(int abm);
	void distritoABM(int abm);
	void cargoABM(int abm);
	void eleccionABM(int abm);
	void candidatoABM(int abm);
	void listaABM(int abm);
	void menuVotacionDeEleccion();
	bool validarUsuarioYContraseniaAdmin(string user, string clave, int tipoUsuario);
	bool modificarEleccion(Eleccion* eleccionAModificar);
	virtual ~Interfaz();
};
}
#endif
